package com.jacklei.ch10;


/*
* 给定 s 和 t 两个字符串，当它们分别被输入到空白的文本编辑器后，如果两者相等，返回 true 。# 代表退格字符。

注意：如果对空文本输入退格字符，文本继续为空。

 

示例 1：

输入：s = "ab#c", t = "ad#c"
输出：true
解释：s 和 t 都会变成 "ac"。
示例 2：

输入：s = "ab##", t = "c#d#"
输出：true
解释：s 和 t 都会变成 ""。
示例 3：

输入：s = "a#c", t = "b"
输出：false
解释：s 会变成 "c"，但 t 仍然是 "b"。
 

提示：

1 <= s.length, t.length <= 200
s 和 t 只含有小写字母以及字符 '#'

来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/backspace-string-compare
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。*/
public class BackspaceStringCompare {
    public static void main(String[] args) {
        BackspaceStringCompare b = new BackspaceStringCompare();
        System.out.println(b.backspaceCompare("ab##", "c#d#"));

    }
    public boolean backspaceCompare(String s, String t) {
        int lengthS = s.length();
        int lengthT = t.length();
        int n = Math.max(lengthS,lengthT);
        int p = 0;
        StringBuilder strS = new StringBuilder();
        StringBuilder strT = new StringBuilder();
        while (p < n){
            if(p < lengthS){
                if(s.charAt(p) == '#'){
                    if(strS.length()-1 > -1)
                        strS.deleteCharAt(strS.length()-1);
                }else {
                    strS.append(s.charAt(p));
                }
            }
            if(p < lengthT){
                if(t.charAt(p) == '#'){
                    if(strT.length()-1 >-1)
                        strT.deleteCharAt(strT.length()-1);
                }else {
                    strT.append(t.charAt(p));
                }
            }
            p++;
        }
        return strS.toString().equals(strT.toString());
    }
}
